شرح دورة أساسيات CSS

في هذه الدورة، سنتعلم أساسيات لغة HTML، التي تعتبر الأساس لبناء صفحات الويب. سنغطي على المفاهيم الأساسية مثل بنية الوثيقة، العناصر، الصيغ، وكيفية استخدامها لإنشاء صفحات ويب تفاعلية وجذابة. سنبدأ بالمفاهيم النظرية وننتقل إلى أمثلة عملية لتسهيل التطبيق.

الدرس الأول: مقدمة في CSS

CSS هي لغة تُستخدم لتحديد مظهر وتنسيق عناصر HTML، مما يتيح لك التحكم الكامل في التصميم البصري لصفحات الويب.

شرح مفصل:
  • تعريف CSS: CSS تعني "Cascading Style Sheets" (أوراق الأنماط المتتالية)، وهي لغة تُركز على فصل التنسيق (الألوان، الخطوط، التخطيط) عن المحتوى (HTML).
  • أهمية CSS: تُحسن الشكل البصري، تُوحد التصميم عبر الصفحات، وتدعم التصميم المتجاوب للأجهزة المختلفة.
  • طرق الإضافة:
    • Inline: داخل السمة style، مثل <p style="color: blue;">.
    • Internal: داخل <style> في <head>.
    • External: ملف خارجي مرتبط بـ <link rel="stylesheet" href="styles.css">.
  • بنية القاعدة: تتكون من محدد (مثل p)، خاصية (مثل color)، وقيمة (مثل blue).
مثال:
p { color: blue; font-size: 16px; }

النتيجة: نصوص الفقرات زرقاء بحجم 16 بكسل.

الدرس الثاني: المحددات والوحدات

المحددات تُحدد العناصر المستهدفة، والوحدات تُحدد قيم الخصائص.

شرح مفصل:
  • أنواع المحددات:
    • النوع: مثل p.
    • الفئة: مثل .box.
    • المعرف: مثل #header.
    • العام: * لكل العناصر.
    • المركبة: مثل div p (نسل)، div > p (ابن مباشر).
  • الوحدات:
    • مطلقة: px، cm.
    • نسبية: %، em (نسبي للخط الحالي)، rem (نسبي للجذر)، vw (عرض الشاشة)، vh (ارتفاع الشاشة).
  • الأولوية: المعرف > الفئة > النوع.
مثال:
.box { width: 50vw; } #id { color: red; }

الدرس الثالث: النمط المتتالي والوراثة

يوضح كيف تُطبق الأنماط عند التعارض وكيف تُورث الخصائص.

شرح مفصل:
  • النمط المتتالي:
    • الأولوية: تُحسب بناءً على نوع المحدد.
    • الترتيب: آخر قاعدة تُطبق إذا تساوت الأولوية.
    • !important: تتجاوز كل القواعد.
  • الوراثة: خصائص مثل color تُورث، بينما border لا تُورث.
مثال:
div { color: blue; } p { color: green !important; }

الدرس الرابع: نموذج الصندوق (Box Model)

يُحدد أبعاد العناصر بناءً على المحتوى، الحشوة، الحدود، والهوامش.

شرح مفصل:
  • المكونات:
    • Content: width، height.
    • Padding: padding.
    • Border: border.
    • Margin: margin.
  • box-sizing: content-box (افتراضي) أو border-box.
مثال:
.box { width: 200px; padding: 20px; border: 5px solid; box-sizing: border-box; }

الدرس الخامس: التموضع (Positioning)

يُحدد مكان العناصر في الصفحة.

شرح مفصل:
  • الأنواع:
    • static: التدفق الطبيعي.
    • relative: بالنسبة للموقع الأصلي.
    • absolute: بالنسبة للأب غير static.
    • fixed: بالنسبة للشاشة.
    • sticky: مزيج بين relative وfixed.
  • z-index: ترتيب الطبقات.
مثال:
.sticky { position: sticky; top: 10px; z-index: 10; }

الدرس السادس: الخطوط

التحكم في شكل النصوص.

شرح مفصل:
  • font-family: نوع الخط (مثل 'Arial', sans-serif).
  • font-size: الحجم (مثل 16px).
  • font-weight: الوزن (مثل bold، 400).
  • font-style: الأسلوب (مثل italic).
  • text-decoration: الزخرفة (مثل underline).
  • line-height: تباعد الأسطر (مثل 1.5).
مثال:
p { font-family: 'Arial'; font-size: 18px; font-weight: bold; line-height: 1.6; }

الدرس السابع: الألوان والخلفيات

إضافة الألوان والصور للعناصر.

شرح مفصل:
  • color: لون النص (مثل #ff0000).
  • background-color: لون الخلفية.
  • background-image: صورة (مثل url('img.jpg')).
  • background-repeat: التكرار (مثل no-repeat).
  • background-position: الموضع (مثل center).
  • background-size: الحجم (مثل cover).
مثال:
body { background: linear-gradient(to right, #ff0000, #00ff00); color: white; }

الدرس الثامن: التخطيط باستخدام Flexbox

نظام تخطيط مرن أحادي البعد.

شرح مفصل:
  • display: flex: تفعيل Flexbox.
  • flex-direction: الاتجاه (مثل row، column).
  • justify-content: محاذاة أفقية (مثل center، space-between).
  • align-items: محاذاة عمودية (مثل center).
  • flex-wrap: التفاف العناصر (مثل wrap).
  • flex: توزيع المساحة للأبناء (مثل flex: 1).
مثال:
.container { display: flex; justify-content: space-around; align-items: center; }

الدرس التاسع: التخطيط باستخدام Grid

نظام تخطيط ثنائي الأبعاد.

شرح مفصل:
  • display: grid: تفعيل Grid.
  • grid-template-columns: الأعمدة (مثل 1fr 1fr).
  • grid-template-rows: الصفوف.
  • gap: المسافة بين الخلايا (مثل 20px).
  • grid-area: تحديد مواضع العناصر.
مثال:
.grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }

الدرس العاشر: الظلال

إضافة تأثيرات ثلاثية الأبعاد.

شرح مفصل:
  • text-shadow: ظل النص (مثل 2px 2px 5px #888).
  • box-shadow: ظل العنصر (مثل 0 4px 8px rgba(0,0,0,0.2)).
مثال:
h1 { text-shadow: 1px 1px 3px gray; } .box { box-shadow: 0 5px 15px rgba(0,0,0,0.3); }

الدرس الحادي عشر: التحولات (Transforms)

تغيير شكل العناصر.

شرح مفصل:
  • transform:
    • translate(x, y): التحريك.
    • rotate(deg): التدوير.
    • scale(n): التكبير/التصغير.
    • skew(deg): الانحراف.
مثال:
.box { transform: translate(50px, 20px) rotate(45deg); }

الدرس الثاني عشر: الانتقالات (Transitions)

تأثيرات سلسة للتغييرات.

شرح مفصل:
  • transition: تُحدد الخاصية، المدة، والتوقيت (مثل transition: all 0.3s ease).
  • الخصائص: مثل color، transform.
مثال:
.box { transition: transform 0.5s; } .box:hover { transform: scale(1.2); }

الدرس الثالث عشر: الرسوم المتحركة (Animations)

حركات مخصصة متكررة.

شرح مفصل:
  • @keyframes: تُحدد مراحل الحركة.
  • animation: تُطبق الحركة (اسم، مدة، تكرار).
مثال:
@keyframes slide { 0% { left: 0; } 100% { left: 100px; } } .box { animation: slide 2s infinite; }

الدرس الرابع عشر: الاستعلامات الإعلامية (Media Queries)

تصميم متجاوب للأجهزة.

شرح مفصل:
  • @media: تُطبق الأنماط بناءً على الشروط (مثل حجم الشاشة).
  • الأمثلة: max-width، min-width.
مثال:
@media (max-width: 600px) { body { font-size: 14px; } }

الدرس الخامس عشر: المتغيرات (CSS Variables)

تخزين القيم لإعادة الاستخدام.

شرح مفصل:
  • --variable: تُعرف في :root للنطاق العام.
  • var(): تُستخدم القيمة.
مثال:
:root { --main-color: #ff0000; } p { color: var(--main-color); }

الدرس السادس عشر: الفلاتر (Filters)

تأثيرات بصرية على الصور والعناصر.

شرح مفصل:
  • filter: مثل blur(5px)، brightness(150%)، grayscale(100%).
مثال:
img { filter: blur(2px) grayscale(50%); }

الدرس السابع عشر: التدرجات (Gradients)

انتقالات لونية للخلفيات.

شرح مفصل:
  • linear-gradient: تدرج خطي (مثل to right, red, blue).
  • radial-gradient: تدرج دائري.
مثال:
body { background: linear-gradient(45deg, #ff0000, #00ff00); }

الدرس الثامن عشر: الشفافية (Opacity)

التحكم في شفافية العناصر.

شرح مفصل:
  • opacity: من 0 (شفاف) إلى 1 (معتم).
  • rgba(): لون مع شفافية (مثل rgba(255, 0, 0, 0.5)).
مثال:
.box { opacity: 0.7; background: rgba(0, 255, 0, 0.3); }

الدرس التاسع عشر: التحجيم والتدفق

التحكم في سلوك العناصر في التدفق.

شرح مفصل:
  • display: block، inline، inline-block.
  • float: يجعل العنصر يطفو (مثل left).
  • clear: يُزيل تأثير العناصر العائمة.
مثال:
.img { float: left; } .text { clear: both; }

الدرس العشرون: المؤشرات والتفاعل

التحكم في سلوك المؤشر والتفاعل.

شرح مفصل:
  • cursor: شكل المؤشر (مثل pointer، not-allowed).
  • :hover: عند التمرير.
  • :active: عند النقر.
مثال:
button:hover { cursor: pointer; background: #ddd; }

الدرس الحادي والعشرون: تحسين الأداء

تسريع تحميل الصفحات.

شرح مفصل:
  • تقليل الأنماط: استخدام قواعد بسيطة.
  • ملفات خارجية: فصل CSS في ملفات مستقلة.
  • تقليل التكرار: استخدام متغيرات أو أدوات مثل Sass.
مثال:
:root { --color: #333; } p { color: var(--color); }

الدرس الثاني والعشرون: العناصر الزائفة (Pseudo-elements)

إضافة محتوى إضافي دون HTML.

شرح مفصل:
  • ::before: قبل المحتوى.
  • ::after: بعد المحتوى.
مثال:
p::before { content: "★ "; color: gold; }

الدرس الثالث والعشرون: تنسيق الطباعة

التحكم في شكل الصفحة عند الطباعة.

شرح مفصل:
  • @media print: أنماط للطباعة فقط.
  • page-break: التحكم في فواصل الصفحات.
مثال:
@media print { body { color: black; } h1 { page-break-before: always; } }